System and method for differentially processing a location input for content providers that use different location input formats

ABSTRACT

The disclosure relates to systems and methods for processing a location input that specifies one or more geographically definable locations for input to individual ones of a plurality of social media or other content providers that have different input formats for specifying locations. A geo-location input may be normalized to an input format that conforms to a particular content provider, which may use a format for the geo-location input that is different that a format used by another content provider. The formatted geo-location input may be communicated to the particular content provider to obtain content from the content provider. The formatting may result in artifacts such as over-inclusive results having excess content and/or under-inclusive results that omit content that should have been provided. The obtained content obtained may corrected based on a determination of whether the content is over-inclusive and/or under-inclusive by removing obtained content and/or adding new content.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 13/788,843, filed Mar. 7, 2013, entitled “SYSTEM AND METHOD FOR DIFFERENTIALLY PROCESSING A LOCATION INPUT FOR CONTENT PROVIDERS THAT USE DIFFERENT LOCATION INPUT FORMATS,” the entirety of which is incorporated herein by reference.

FIELD OF THE INVENTION

The disclosure relates to systems and methods for processing a location input that specifies one or more geographically definable locations for input to individual ones of a plurality of social media or other content providers that have different input formats for specifying locations.

BACKGROUND OF THE INVENTION

The availability of content such as videos, audio files, photos, and text over networks such as the Internet has grown at impressive rates. This growth has been fueled largely by the popularity of social media providers/platforms that register users, receive content from their users, and distribute the content to others. Put another way, users may be seen as content creators that publish their content through social media platforms. Other content creators publish content using their own websites and/or network-based exchanges and services such as online forums, chat rooms, and the like.

In many instances the created content can be automatically tagged with location information related to the content (e.g., where the content was created). Social media and other content providers oftentimes provide interfaces that allow location inputs to search for content based on the location information. However, different content providers have different formatting requirements for the location information. Thus, aggregating content from different content providers based on a location input may be difficult.

SUMMARY OF THE INVENTION

The disclosure relates to systems and methods for processing a location input that specifies one or more geographically definable locations for input to individual ones of a plurality of social media or other content providers that have different input formats for specifying locations.

In some embodiments, the system may include a computer that facilitates processing a location input. For example, the computer may format a location input to be compatible with different formats used by different content providers to receive the location input. In this manner, even though content providers may receive location inputs in a limited number of formats, the computer may receive location inputs according to a wide range of formats, allowing for flexible and scalable location input solutions for content aggregation based on location.

In some embodiments, the formatting may result in artifacts such as over-inclusive and/or under-inclusive results. For example, a location input by a user may be formatted into a zip code that does not entirely match the actual location input by the user. The zip code may include a greater and/or a lesser geographic area than the actual location input, leading to over-inclusive and/or under-inclusive results. The computer may be configured to compensate for such artifacts, thereby providing location input solutions that are scalable and address artifacts that may result from processing location inputs.

The computer may include one or more processors configured to perform some or all of a functionality of a plurality of modules. For example, the one or more processors may be configured to execute a geofeed creation module, a geo-location processing module, a geo-location correction module, a communication module, a user interface module, and/or other modules.

The geofeed creation module may be configured to receive a request to create a geofeed. The request to create the geofeed may include a specification of one or more geo-locations (hereinafter, a “geo-location specification”). The request may also include one or more geofeed parameters that may be used to filter content into the geofeed and/or out of the geofeed. The geo-location specification may be defined by one or more geo-location inputs. The geofeed creation module may receive a geo-location input. The geo-location input may comprise a map input, a text input, and/or other input. The geofeed creation module may generate a geofeed definition that includes the geo-location specification, the one or more geofeed parameters, and/or other information related to the geofeed. The geofeed definition may be updated. For example, the geo-location specification, the one or more geofeed parameters, and/or other information of the geofeed definition may be updated. In this manner, various parameters related to geofeeds may be defined and updated at the time of specifying the geofeeds and/or after the geofeeds have been specified.

A first content provider may accept a first geo-location input format that is different from a second geo-location input format of a second content provider. The geo-location input may not be compatible with the first geo-location input format and/or the second geo-location input format. The geo-location processing module may normalize the geo-location input to be compatible with the first geo-location input format to obtain content from the first content provider and may normalize the geo-location input to be compatible with the second geo-location input format to obtain content from the second content provider.

The geo-location correction module may be configured to determine whether the received content is over-inclusive and/or under-inclusive based on the original geo-location input. Based on the determination, the geo-location correction module may remove and/or add content.

The communication module may be configured to communicate one or more geofeeds generated based on the geo-location input. In some embodiments, the communication module may communicate formatting results, correction results, and/or other information related to processing location inputs.

The user interface module may be configured to generate a user interface that communicates and/or displays one or more geofeeds. The content consumer device may display a user interface provided by the user interface module, which a content consumer may use to request a geofeed.

Various other objects, features, and advantages of the invention will be apparent through the detailed description of the preferred embodiments and the drawings attached hereto. It is also to be understood that both the foregoing general description and the following detailed description are exemplary and not restrictive of the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for processing a geo-location input to generate a geofeed, according to an aspect of the invention.

FIG. 2 illustrates a data flow diagram for a system for processing a geo-location input to generate a geofeed, according to an aspect of the invention.

FIG. 3 illustrates a process for processing a geo-location input to generate a geofeed, according to an aspect of the invention.

FIG. 4 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 5 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 6 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 7 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 8 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 9 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

FIG. 10 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a circle, according to an aspect of the invention.

FIG. 11 illustrates a screenshot of an interface for communicating a geofeed generated based on a geo-location input shaped as a circle, according to an aspect of the invention.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 illustrates a system 100 of processing a geo-location input to generate a geofeed, according to an aspect of the invention. A geofeed includes a collection of content, aggregated from various content providers, that is relevant to a geographically definable location (hereinafter, a “geo-location”). The aggregated content (also referred to herein as “geofeed content”) may include, for example, video, audio, images, text, hyperlinks, and/or other content that may be relevant to a geo-location.

The geo-location may be specified by various input mechanisms (hereinafter, “geo-location inputs”) including map inputs and/or text inputs. Map inputs may include a specification of a geographical area bounded by a circle, polygon, visible area of the screen, and/or other non-circular shape drawn using a map interface. Text inputs may include a geo-coordinate (e.g., latitude, longitude, altitude/depth), an address, a school, a place name, a point of interest (e.g., “White House”), a zip code, a city, a state, a country, and/or other information that can spatially identify a geographical area. As used hereinafter, “a location,” “a geo-location,” “a geographically definable location,” and similar language is not limited to a single location but may also refer to one or more such location.

The content providers may include, for example, social media platforms (e.g., FACEBOOK, TWITTER, INSTAGRAM, FLICKR, etc.), online knowledge databases, and/or other providers that can distribute content that may be relevant to a geo-location. The content may be generated by content sources such as individuals, corporations, and/or other entities that may create content.

In many instances the created content can be automatically tagged with information such as user identifications, date/time information or geographic information that specifies a location where the content was created. For example, cameras equipped with Global Positioning Satellite (“GPS”) units or other location-aware systems may embed into an image file latitude/longitude coordinates that indicate where a picture was taken. In addition, modern hand-held devices such as smartphones may be equipped with a GPS sensor, which allows users to generate content (e.g., video, audio, images, text, hyperlinks, etc.) with their devices and immediately share the content through a plurality of social networks. Moreover, some devices allow users to manually input the foregoing and other information for embedding into the content. Furthermore, editing software may allow a user to embed or otherwise associate information along with the content after the content was created.

System 100 may include a computer 110, a geofeed API 122, a content consumer device 120, provider APIs 140, content providers 150, and/or other components. In some embodiments, computer 110 may include one or more processors configured to perform some or all of functionality of a plurality of modules. For example, the one or more processors may be configured to execute a geofeed creation module 111, a geo-location processing module 112, a geo-location correction module 113, a communication module 114, a user interface module 115, and/or other modules 116.

Geofeed creation module 111 may be configured to create one or more geofeeds 101 (illustrated in FIG. 1 as geofeed 101A, 101B, . . . , 101N), as described in U.S. patent application Ser. No. 13/284,455, filed Oct. 28, 2011, entitled “SYSTEM AND METHOD FOR AGGREGATING AND DISTRIBUTING GEOTAGGED CONTENT,” and U.S. patent application Ser. No. 13/619,888, filed Sep. 14, 2012, entitled “SYSTEM AND METHOD FOR GENERATING, ACCESSING, AND UPDATING GEOFEEDS” both of which are incorporated by reference herein in their entirety.

U.S. patent application Ser. No. 13/788,760 (issued on Dec. 17, 2013 as U.S. Pat. No. 8,612,533), entitled “SYSTEM AND METHOD FOR CREATING AND MANAGING GEOFEEDS,” and U.S. patent application Ser. No. 13/788,909 (issued on Sep. 30, 2014 as U.S. Pat. No. 8,850,531), entitled “SYSTEM AND METHOD FOR TARGETED MESSAGING, WORKFLOW MANAGEMENT, AND DIGITAL RIGHTS MANAGEMENT FOR GEOFEEDS,” are all incorporated by reference in their entireties herein.

U.S. patent application Ser. No. 13/708,516 (issued on Feb. 18, 2014 as U.S. Pat. No. 8,655,983), filed Dec. 7, 2012, entitled “SYSTEM AND METHOD FOR LOCATION MONITORING BASED ON ORGANIZED GEOFEEDS,” U.S. patent application Ser. No. 13/708,404 (issued on Jul. 9, 2013 as U.S. Pat. No. 8,484,224), filed Dec. 7, 2012, entitled “SYSTEM AND METHOD FOR RANKING GEOFEEDS AND CONTENT WITHIN GEOFEEDS,” and U.S. patent application Ser. No. 13/708,466 (issued on Jan. 28, 2014 as U.S. Pat. No. 8,639,767), filed Dec. 7, 2012, entitled “SYSTEM AND METHOD FOR GENERATING AND MANAGING GEOFEED-BASED ALERTS” are all incorporated by reference in their entireties herein.

For example, geofeed creation module 111 may be configured to receive a request to create a geofeed. The request to create the geofeed may include a specification of one or more geo-locations and one or more geofeed parameters such as, for example, providers to include (or exclude), types of content to include (or exclude), date ranges, content matching patterns, keywords, and/or other parameters that instruct the system as to which content should be included in the geofeed.

In some embodiments, geofeed creation module 111 may be configured to generate a geofeed based on the geo-location specification and/or geofeed parameters. Geofeed creation module 111 may request or otherwise crawl content that may be relevant to the geo-location from content providers 150. Typically, although not necessarily, geofeed creation module 111 may request and receive the content via various Application Programming Interfaces (“APIs”) 140 (illustrated in FIG. 1 as API 140A, API 140B, . . . , API 140C) exposed by content providers 150. In other instances, geofeed creation module 111 may simply request and/or receive content from content providers 150 without using an API such as by crawling a website of the provider or otherwise requesting content without an API. Data input to and output from a content provider 150 hereinafter will be described with respect to an API 140 for convenience, although processing may be similarly applied to interfacing with a content provider without using an API.

In some embodiments, the geo-location specification may include one or more geo-location inputs. For example, geofeed creation module 111 may be configured to receive a geo-location input that specifies the geo-location via content consumer device 120 using an interface exposed by computer 110. The interface may include a map interface and/or other interface that receives a boundary of the geo-location. The map interface may include a map input that allows the content consumer or other user to designate an outline on the map, zoom in or out of the map, and/or pan the map to specify the geo-location. Other interfaces may include a text input that allows the user to input (e.g., type) a geo-coordinate (e.g., latitude, longitude, altitude/depth), an address, a school, a place name, a point of interest (e.g., “White House”), a zip code, a city, a state, a country, and/or other information that can specify a geo-location. In some embodiments, the geo-location may be calculated based on a current location of a device such as content consumer device 120. In some embodiments, the geo-location may be obtained from a third party location provider. In these embodiments, for example, a location input may include a point of interest and the third party location provider may return one or more coordinates or other location information related to the point of interest. The location information from the third party location provider may be formatted as described herein.

Geo-location processing module 112 may be configured to obtain the geo-location input and/or normalize the geo-location input into a format that is compatible with computer 110 and/or different content providers 150. The geo-location input may be received via one or more user interfaces, from an automated process (e.g., a computer process), and/or other input source.

In some embodiments, geo-location processing module 112 may normalize the geo-location input into an intermediate format that may be recognized by and/or be compatible with computer 110. The intermediate format may then be converted to a format that is compatible with different content providers 150 and/or their corresponding provider APIs 140. In some embodiments, the geo-location input may be directly normalized into a format that is compatible with different content providers 150 and/or their corresponding provider APIs 140 without initially normalizing the geo-location input into the intermediate format.

In some embodiments, geo-location processing module 112 may be configured to format the geo-location input specific for different provider APIs 140 (illustrated in FIG. 1 as API 140A, 140B, 140C). The provider APIs may facilitate receiving content from corresponding content providers 150 (illustrated in FIG. 1 as content providers 150A, 150B, 150C). In some embodiments, geo-location processing module 112 may format the geo-location input directly for content provider 150N without using a corresponding API. For example, the various content providers 150 may accept different geo-location input formats. In this example, content provider 150A may receive a geo-location input in a point (e.g., latitude and longitude geo-coordinates) and radius input format while another provider 150B may receive a plurality of geo-coordinates indicating a boundary of a non-circular shape (e.g., rectangle) as an input to retrieve content. Yet another provider 150C may receive a zip code, a city, a state, a country, and/or other input formats. As such, the geo-location input initially received by geofeed creation module 111 may not be compatible with the geo-location input format that may be acceptable by a particular content provider from which the content is to be requested. As such, geo-location processing module 112 may format the geo-location input to be compatible with a corresponding provider API 140.

In some embodiments, geo-location processing module 112 may be configured to use a provider profile associated with each provider 150A-C in order to format the geo-location input so that the geo-location input is compatible with each API. Provider profiles may be stored in a provider profile database 134. The provider profiles may include information related to a content provider such as, for example, a geo-location input format acceptable by the content provider and/or rules (and/or other intelligence) used to format geo-location inputs to be compatible with different content providers.

Geo-location processing module 112 may be configured to obtain a geo-location input based on a map input, a text input, and/or other inputs. Map inputs may include a specification of a geographical area bounded by a circle, polygon, visible area of a map interface, and/or other shape input (e.g., drawn) using the map interface. Text inputs may include a geo-coordinate (e.g., latitude, longitude, altitude/depth), an address, a school, a place name, a point of interest (e.g., “White House”), a zip code, a city, a state, a country, and/or other information that can spatially identify a geographical area.

In some embodiments, a user may specify a map input using the map interface exposed by computer 110. Geo-location processing module 112 may obtain a specification of a geographical area bounded by the map input as a geo-location input. For example, content provider 150A may require a point and radius input format. If the map input is a circle, geo-location processing module 112 may determine the point and radius of the circle and request content from content provider 150A based on the point and radius. In this case, the content received from content provider 150A may be coextensive with the geographical area defined by the circle without being over-inclusive or under-inclusive because the map input is compatible with the input format of the content provider. In other words, geo-coordinates associated with individual items of the received content may all be located within the circle.

On the other hand, if the map input is not compatible with the input format of the content provider (such as point and radius input) geo-location processing module 112 may normalize the map input to be compatible with the input format of the content provider. For example, when the original geo-location input includes a polygon, geo-location processing module 112 may normalize the polygon by generating a circle that corresponds to the polygon. In this manner, a point and radius of the circle may be obtained in order to request content from content provider 150A based on the point and radius input requirement of the content provider. As would be appreciated, the geo-coordinates corresponding to portions of the circle may be mapped to the geo-coordinates corresponding to the polygon input using conventional coordinate transformation techniques.

In some embodiments, in order to determine a circle that covers the area specified by the polygon, geo-location processing module 112 may identify a centroid and a plurality of corners of the polygon and/or measure the distance between the centroid and individual ones of the plurality of corners. Geo-location processing module 112 may determine the formatted geo-location input based on the centroid as a center of the circle and the longest distance as a radius of the circle.

The formatting may cause artifacts such as over-inclusive and/or under-inclusive results. For example, if the formatted geo-location input represented by the circle is made larger than the polygon (covering the entire area of the polygon), the content received from content provider 150A may be over-inclusive such that it includes extraneous content whose associated geo-coordinates are located within the formatted geo-location input (e.g., circle) but outside of the map input (e.g., polygon). On the other hand, if the formatted geo-location input represented by the circle is smaller than the polygon, the received content based on the formatted geo-location (e.g., circle) may be under-inclusive where it may not include content whose locations are just outside of the circle but still within the polygon. In these instances, the geo-location correction module described herein may compensate for such artifacts.

In some embodiments, geo-location processing module 112 may divide the map input into a plurality of segments using various segmentation techniques. In some embodiments, the plurality of segments may be individually normalized. The plurality of formatted geo-location inputs for the segments may be aggregated into a single input which may be communicated to a corresponding content provider and/or be separately input to the corresponding content provider.

Continuing the foregoing non-limiting example where content provider 150A accepts a point and radius input format, geo-location processing module 112 may divide the geographically area defined by a polygon into multiple segments. Individual segments may be normalized such as by creating one or more circles corresponding to individual segments. Various ways to normalize a non-circular map input such as a polygon into a circle discussed herein may similarly apply to the process of normalizing a non-circular segment of the polygon into a circle and/or other shapes received as input by content providers. Once a plurality of circles corresponding to the polygon is determined, geo-location processing module 112 may request content from content provider 150A based on the point and radius information associated with the plurality of circles.

In some embodiments, content provider 150E3 may require a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area) as an input format. In these embodiments, geo-location processing module 112 may normalize the map input into a zip code of that at least partially corresponds with a geographic area specified by the map input. The geographical area of the zip code may be larger than (e.g., over-inclusive), and/or smaller than (e.g., under-inclusive) the area bounded by the map input. If a geographic area of the zip code zip code is larger than the map input, the content received from content provider 150B based on the formatted geo-location input (e.g., zip code) may include extraneous content whose associated locations are outside of the map input but within the formatted map input. If a geographic area of the zip code is smaller than the area bounded by the map input, the received content based on the zip code may not include (therefore under-inclusive) content whose locations are just outside of the zip code but still within the map input.

In some embodiments, the geographic area bounded by a map input may overlap with more than one zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). In this case, geo-location processing module 112 may identify a plurality of zip codes that covers and/or is related to the geographical area bounded by the particular map input and request content from content provider 150B based on the plurality of zip codes.

In some embodiments, geo-location processing module 112 may receive a geo-location input specifying a dimension (e.g., length, width, area, etc.) that is larger than a maximum input area dimension allowable for a given content provider 150. For example, the geo-location input may specify a 50-km wide location in which to search whereas a particular content provider 150 may require a location input that specifies an area no greater than a 5-km wide location input. Still another content provider 150 may require a location input that specifies an area no greater than a 10-km wide location input. As described herein, different content providers 150 may further require different types of inputs (e.g., center/radius, bounded box, etc.).

In these embodiments geo-location processing module 112 may normalize the geo-location input (e.g., the 50-km wide location) for individual content providers and may determine the number of requests to be made based on particular requirements of the different content providers 150 from which content is obtained. For example, geo-location processing module 112 may be configured to determine a minimum number of requests to be made to a content provider 150 based on the maximum location size that the content provider receives. In the foregoing example, geo-location processing module 112 may generate a first plurality of segments individually spanning 5-km for a first content provider 150 and a second plurality of segments individually spanning 10-km for a second content provider 150. For each content provider, geo-location processing module 112 may normalize the geo-location input as well, such as by using a point-and-radius for the first content provider and a bounded box for the second content provider. The requirements for normalization may be stored in a content provider profile as described herein and/or co-pending applications.

Returning to the example, for input to individual content providers, geo-location processing module 112 may layout the plurality of segments in a manner that minimizes overlap and maximizes coverage of the geo-location input. In some embodiments, conventional best-fit techniques may be used to layout the plurality of segments. In some embodiments, for example, geo-location processing module 112 may layout the plurality of 5-km wide location input segments for the first content provider and layout the plurality of 10-km wide location input segments for the second content provider in a manner that minimizes overlap and maximizes coverage of the geo-location input. In a particular example, geo-location processing module 112 may position a segment at a first position and position subsequent segments until a boundary of the geo-location input is reached. Geo-location processing module 112 may continue this process in each direction as appropriate, depending on the size and/or shape of the geo-location specified by the geo-location input. The size and/or shape of each segment may depend on the type of input (e.g., point-and-radius, bounded box, etc.) accepted by the content provider for geo-location input.

In some embodiments, a user may specify a text input using a text interface and/or other interfaces exposed by computer 110. For example, geo-location processing module 112 may normalize the text input such as a geo-coordinate, an address, a school, a place name, a point of interest, etc. into a point that defines a geographic center of the text input and determine a radius about the center to approximate the geographic region of the text input. Geo-location processing module 112 may convert the text input into geo-coordinates to determine the geographic center of a geographic area defined by the text input. In some embodiments, geo-location processing module 112 may access geo-location database 138 to obtain and/or retrieve geo-coordinates that are associated with a particular address, name of a place, a point of interest, etc. Geo-location processing module 112 may request content from content provider 150A, which may require a point and radius input format based on the determined point and radius. The radius may also be predetermined by computer 100, by individual content providers, and/or by user input.

In another example, geo-location processing module 112 may normalize the text input into a zip code, neighborhood, city, etc. to which the geo-location related to the text input belongs in order to request content from content provider 150B which may require such an input format.

In some embodiments, the text inputs may be translated into map inputs which may then be used to request content from content providers. For example, geo-location processing module 112 may obtain a zip code as a text input. Using a map interface exposed by computer 110, geo-location processing module 112 may identify a geographical area bounded by a map input such as a polygon that represents the area covered by the zip code. In another example, a text input such as “White House” may be converted to a map input such as a polygon indicating an area surrounding the White House.

In some embodiments, geo-location processing module 112 may be configured to store the geo-location specification defined by a geo-location input and/or other information related to the request to create a geofeed as a geofeed definition in a geofeed database 136. The geofeed definition may include information that allows geofeed creation module 111 and/or other components of the system to generate a geofeed that was previously requested using the geo-location specification and/or other information related to the geofeed. In this manner, a content consumer or other user need not re-enter the geo-location input in order to view the geofeed defined by the geofeed definition.

In some embodiments, geo-location processing module 112 may access a geo-location database 138 (illustrated in FIG. 1 as “Geo-Loc DB 138”), which may be located locally and/or remotely at a 3^(rd) party site, to obtain geographic information related to the text input. For example, geo-location processing module 112 may retrieve a predefined polygon associated with a particular point of interest such as the White House and/or convert the text input to a map input based on the predefined polygon.

In some embodiments, geo-location inputs obtained by geo-location processing module 112 may be stored in and/or retrieved from a user profile database 132. For example, a user profile may include information related to a user (e.g., a content consumer) such as, for example, prior geo-location specifications.

In some embodiments, when content is received from one or more of the various content providers, the system may store the content (as allowed by law or terms of service) and/or links to the content in a manner that associates the content and/or links with a standard location format. In this manner, once the geo-location input has been normalized for input to the content providers and the content has been received, subsequent searches on the stored content and/or links may use the standard location format used by the system. The standard location format may be based on a point-and-radius, bounded box, and/or other geo-location specifying format.

Geo-location correction module 113 may be configured to determine whether the received content is over-inclusive and/or under-inclusive based on the original geo-location input. For example, geo-location correction module 113 may determine a location associated with individual content and determine whether the location is within the original geo-location input.

When the received content includes excess content such as content that is within a geographic area defined by the formatted geo-location input but outside of a geographic area defined by the original geo-location input, geo-location correction module 113 may remove the extraneous content. For example, geo-location correction module 113 may identify an item of the content to be removed by comparing geo-coordinates of that content item with geo-coordinates associated with the original geo-location input (e.g., geo-coordinates associated with various points along the perimeter of the geographic area bounded by the geo-location input). In this manner, even if a particular content provider provides only an input mechanism that broadly defines a geo-location such as a zip code, geo-location correction module 113 may be used to fine-tune the content received from the content provider.

In some embodiments, the extraneous content that have been removed by geo-location correction module 133 may be tracked, stored in a database such as geofeed database 136, and/or communicated to the user. In this manner, the content consumer may be informed of the content items that were removed (and may be available to access if the geo-location input is enlarged).

When the received content is under-inclusive, geo-location correction module 113 may identify additional content items that are located inside of the original geo-location input and/or add those items to the geofeed.

Communication module 114 may be configured to communicate one or more geofeeds generated by geofeed creation module 111. In some embodiments, the communication module may communicate formatting results, correction results, and/or other information related to processing location inputs.

User interface module 115 may be configured to generate a user interface that communicates and/or displays one or more geofeeds. The user interface may include a web page, an application executing on a mobile device, or other interface that can receive inputs and/or communicate outputs. For example, content consumer device 120 may display a user interface provided by user interface module 115, which a content consumer may use to request a geofeed.

Exemplary screenshots of interfaces generated by user interface module 115 are illustrated in FIGS. 4-11.

Those having skill in the art will recognize that computer 110 and content consumer device 120 may each comprise one or more processors, one or more interfaces (to various peripheral devices or components), memory, one or more storage devices, and/or other components coupled via a bus. The memory may comprise random access memory (RAM), read only memory (ROM), or other memory. The memory may store computer-executable instructions to be executed by the processor as well as data that may be manipulated by the processor. The storage devices may comprise floppy disks, hard disks, optical disks, tapes, or other storage devices for storing computer-executable instructions and/or data.

One or more applications, including various modules, may be loaded into memory and run on an operating system of computer 110 and/or consumer device 120. In one implementation, computer 110 and consumer device 120 may each comprise a server device, a desktop computer, a laptop, a cell phone, a smart phone, a Personal Digital Assistant, a pocket PC, or other device.

Network 102 may include any one or more of, for instance, the Internet, an intranet, a PAN (Personal Area Network), a LAN (Local Area Network), a WAN (Wide Area Network), a SAN (Storage Area Network), a MAN (Metropolitan Area Network), a wireless network, a cellular communications network, a Public Switched Telephone Network, and/or other network.

FIG. 2 illustrates a data flow diagram 200 for a system for processing a geo-location input to generate a geofeed, according to an aspect of the invention. Geofeed creation module 111 may generate a geofeed 101 based on a geo-location input that may be processed through various modules including, for example, geo-location processing module 112 and/or geo-location correction module 113.

In some embodiments, geofeed creation module 111 may receive the request and communicates the geo-location input of the request to geo-location processing module 112 to process the geo-location input.

Geo-location processing module 112 may obtain the geo-location input and/or normalize the geo-location input into a format that is compatible with different content providers 150. For example, the request may include a geo-location input that is an address, while content provider 150A may take as input a point and radius location for defining a geo-location and content provider 150B may take as input a zip code for defining the geo-location. As such, geo-location processing module 112 may format the geo-location input so that it conforms to a corresponding provider 150.

Geo-location processing module 112 may normalize the geo-location input from the request to be compatible with API 140A and API 140B. For example, geo-location processing module 112 may normalize the address into a point that defines a geographic center of the address and determine a radius about the center to approximate the geographic region of the address in order to request content from provider 150A using API 140A. On the other hand, geo-location processing module 112 may normalize the address into a zip code of which the address is a part in order to request content from provider 150B using API 140B.

In some embodiments, a content provider may not expose an API. In these embodiments, geo-location processing module 112 may normalize the geo-location input to be compatible with provider 150N. For example, geo-location processing module 112 may request content from provider 150N directly by crawling a website of provider 150N, executing search queries on a search module of provider 150N and/or using other techniques to access content from provider 150N.

Geo-location processing module 112 may store the geo-location specification defined by a geo-location input and/or other information related to the request to create a geofeed as a geofeed definition in a geofeed database 136.

Geo-location processing module 112 may obtain various profiles such as a user profile (201) and/or a provider profile (203). The provider profile (203) may include information related to a content provider such as, for example, a geo-location input format acceptable by the content provider and/or rules (and/or other intelligence) used to format geo-location inputs to be compatible with different content providers. The user profile (201) may include information related to a content consumer such as, for example, prior geo-location specifications.

In some instances, the content from providers 150 may be over-inclusive or under-inclusive because of the normalization process (e.g., a zip code may return more results than a particular address). Geo-location correction module 113 may adjust the over-inclusive (or under-inclusive) content using various techniques discussed herein with respect to FIG. 1.

Geofeed creation module 111 may aggregate the received content, which may or may not be adjusted by geo-location correction module 113 and generate a geofeed based on the aggregated content. The geofeed may be communicated to the content consumer via the user interface communicated via user interface module 115 and/or other communication channel. Examples of various user interfaces are described with respect to FIGS. 4-11.

FIG. 3 illustrates a process 300 for processing a geo-location input to generate a geofeed, according to an aspect of the invention. The various processing operations and/or data flows depicted in FIG. 3 (and in the other drawing figures) are described in greater detail herein. The described operations may be accomplished using some or all of the system components described in detail above and, in some embodiments, various operations may be performed in different sequences and various operations may be omitted. Additional operations may be performed along with some or all of the operations shown in the depicted flow diagrams. One or more operations may be performed simultaneously. Accordingly, the operations as illustrated (and described in greater detail below) are exemplary by nature and, as such, should not be viewed as limiting.

In an operation 301, process 300 may include obtaining a geo-location input which may be a map input and/or a text input. In an operation 302, process 300 may include normalizing the geo-location input into a format that is compatible with the next provider from which content is received. In an operation 303, process 300 may include communicating the formatted geo-location input to the next provider. In an operation 304, process 300 may include receiving the content requested based on the formatted geo-location input from the provider.

In an operation 310, process 300 may include determining whether the received content is over-inclusive such that it contains excess content whose associated locations are within the area specified by the formatted geo-location input but outside of the area specified by the original geo-location. If the received content is over-inclusive, process 300 may include removing the excess content from the received content in an operation 312. On the other hand, if the received content is not over-inclusive, process 300 may include determining whether the received content is under-inclusive such that there may be additional content that are located just outside of the area specified by the formatted geo-location input but still within the area specified by the original geo-location input in an operation 311. If the received content is under-inclusive, process 300 may include adding the additional content to the received content in an operation 313. On the other hand, if the received content is not under-inclusive, process 300 may include determining whether more providers are to be queried for content. If more providers remain, process 300 may return to operation 302, where the geo-location input is normalized for the next provider. If no more providers remain, in an operation 315, process 300 may include generating the geofeed.

FIG. 4 illustrates a screenshot of an interface 400 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention. The screenshots illustrated in FIG. 4 and other drawing figures are for illustrative purposes only. Various components may be added, deleted, moved, or otherwise changed so that the configuration, appearance, and/or content of the screenshots may be different than as illustrated in the figures. Accordingly, the graphical user interface objects as illustrated (and described in greater detail below) are exemplary by nature and, as such, should not be viewed as limiting.

Interface 400 and other interfaces described herein may be implemented as a web page communicated from computer 110 to a client, an application such as a mobile application executing on the client that generates the interface based on information communicated from computer 110, and/or other interface. Whichever type of interface is used, computer 110 may communicate the data and/or formatting instructions related to the interface to the client, causing the client to generate the various interfaces of FIG. 4 and other drawing figures. Furthermore, computer 110 may receive data from the client via the various interfaces, as would be appreciated.

Referring to FIG. 4, interface 400 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a polygon 411 via interface 400. As illustrated, polygon 411 indicates a boundary of a geo-location for a geofeed. Other polygons and/or other shapes (not illustrated) may indicate other boundaries of other geo-locations for the geofeed. Polygon 411 may be normalized into an input format that may be compatible with a particular content provider, which may, as illustrated, take as input a point and radius input. During the normalization and/or formatting process, a centroid 450 of polygon 411 and corners 420A-I of polygon 411 may be identified. Based on centroid 450 and corner 420A having the longest distance (illustrated by a dotted line 430) from centroid 450, the formatted geo-location input may be formed and/or used to request content from the content provider.

The content received from the content provider based on centroid 450 and distance 430 may include excess content that is outside of the area represented by polygon 411. Such excess content such as a content item 470 may be located in the shaded area of a circle 410. Content item 470 may be removed from the received content whereas content such as a content item 460 that are within polygon 411 may be added to the geofeed.

FIG. 5 illustrates a screenshot of an interface 500 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

Referring to FIG. 5, interface 500 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a user may specify locations of interest by drawing a polygon 511 via interface 500. As illustrated, polygon 511 is displayed that indicates a boundary of a geofeed. Polygon 511 may be normalized into an input format that may be acceptable for a particular content provider, such as a point and radius input. During the normalization and/or formatting process, polygon 511 may be divided into a plurality of segments where individual segments may be separately normalized into a point and radius format. In this example, polygon 511 has been divided into 6 different segments. As illustrated, circles 510A and 510B may be formed around corresponding segments. Content may be requested from the content provider based on the point and radius information determined by the circles formed around the segments (such as a center 580, a radius 581, a center 582, and a radius 583).

The content received from the content provider based on the point and radius information may include excess content that is outside of the area represented by polygon 511. Such excess content such as a content item 562 may be located in the shaded area of the circles. Content item 562 may be removed from the received content whereas content such as a content item 561 that are within polygon 511 may be added to the geofeed.

In some embodiments, a region 620 in which two or more circles overlap may include duplicate content. For example, if a content item 560 was received from the content provider based on center 580 and radius 581 and a duplicate content item 560 was also received based on center 582 and radius 583, the duplicate content item may be removed, disregarded, ignored, indicated as excess content, and/or otherwise may not be added to the geofeed.

FIG. 6 illustrates a screenshot of an interface 600 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

Referring to FIG. 6, interface 600 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a user may specify locations of interest by drawing a polygon 611 via interface 600. As illustrated, polygon 611 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as polygon 611 may be normalized into an input format that may be acceptable for a particular content provider, such as a point and radius input. During the normalization and/or formatting process, a centroid 650 of polygon 611 and corners may be identified. Based on centroid 650 and a radius (illustrated by a dotted line 651), the formatted geo-location input may be formed and/or used to request content from the content provider.

The content received from the content provider based on centroid 650 and radius 651 may be under-inclusive such that there may be additional content such as a content item 670 that is located just outside of the area specified by a circle 610 but still within the area specified by polygon 611. Such additional content such as content item 670 may be added to the received content including a content item 660, for example.

FIG. 7 illustrates a screenshot of an interface 700 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

Referring to FIG. 7, interface 700 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a polygon 711 via interface 700. As illustrated, polygon 711 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as polygon 711 may be normalized into an input format that may be acceptable for a particular content provider. The input format that is acceptable, in this example, may be a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). During the normalization and/or formatting process, a zip code (as illustrated as a rectangle 710 but it may also be shaped as a circle, polygon, or any other non-circular shapes) to which the area specified by polygon 711 belongs may be identified. Based on the zip code shaped as rectangle 710, the formatted geo-location may be formed and/or used to request content from the content provider.

The content received from the content provider based on the zip code shaped as rectangle 710 may include excess content that is outside of the area represented by polygon 711. Such excess content such as a content item 770 may be located in the shaded area of rectangle 710. Content item 770 may be removed from the received content whereas content such as a content item 760 that is within polygon 711 may be added to the geofeed.

FIG. 8 illustrates a screenshot of an interface 800 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

Referring to FIG. 8, interface 800 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a polygon 811 via interface 800. As illustrated, polygon 811 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as polygon 811 may be normalized into an input format that may be acceptable for a particular content provider. The input format that is acceptable, in this example, may be a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). During the normalization and/or formatting process, a zip code (as illustrated as a rectangle 810 but it may also be shaped as a circle, polygon, or any other non-circular shapes) of which the area specified by polygon 811 is a part may be identified. Based on the zip code shaped as rectangle 810, the formatted geo-location may be formed and/or used to request content from the content provider.

The content received from the content provider based on the zip code shaped as rectangle 810 may be under-inclusive such that there may be additional content such as a content item 870 that is located just outside of the area specified by rectangle 810 but still within the area specified by polygon 811. Such additional content such as content item 870 may be added to the received content including a content item 860, for example.

FIG. 9 illustrates a screenshot of an interface 900 for communicating a geofeed generated based on a geo-location input shaped as a polygon, according to an aspect of the invention.

Referring to FIG. 9, interface 900 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a polygon 911 via interface 900. As illustrated, polygon 911 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as polygon 911 may be normalized into an input format that may be acceptable for a particular content provider. The input format that is acceptable, in this example, may be a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). If the geographical area bounded by polygon 911 overlaps with more than one zip code (as illustrated by zip codes 912 and 913), the geo-location input shaped as polygon 911 may be normalized into zip codes 912 and 913 which may be used to request content from the content provider.

The content received from the content provider based on zip codes 912 and 913 may include excess content that is outside of the area represented by polygon 911. Such excess content such as content items 970A and 970B may be located in the shaded area of zip codes 912 and 913. Content items 970A and 970B may be removed from the received content whereas content such as content items 960A and 960B that are within polygon 911 may be added to the geofeed.

FIG. 10 illustrates a screenshot of an interface 1000 for communicating a geofeed generated based on a geo-location input shaped as a circle, according to an aspect of the invention.

Referring to FIG. 10, interface 1000 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a circle 1011 via interface 1000. As illustrated, circle 1011 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as circle 1011 may be normalized into an input format that may be acceptable for a particular content provider. The input format that is acceptable, in this example, may be a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). During the normalization and/or formatting process, a zip code (as illustrated as a rectangle 1010 but it may also be shaped as a circle, polygon, or any other non-circular shapes) to which the area specified by circle 1011 belongs may be identified. Based on the zip code shaped as rectangle 1010, the formatted geo-location may be formed and/or used to request content from the content provider.

The content received from the content provider based on the zip code shaped as rectangle 1010 may include excess content that is outside of the area represented by circle 1011. Such excess content such as a content item 1070 may be located in the shaded area of rectangle 1010. Content item 1070 may be removed from the received content whereas content such as a content item 1060 that is within circle 1011 may be added to the geofeed.

FIG. 11 illustrates a screenshot of an interface 1100 for communicating a geofeed generated based on a geo-location input shaped as a circle, according to an aspect of the invention.

Referring to FIG. 11, interface 1100 may provide a geofeed that may be generated based on a geo-location input and a formatted geo-location input that has been created by normalizing the geo-location input. For example, a content consumer may specify locations of interest by drawing a circle 1111 via interface 1100. As illustrated, circle 1111 is displayed that indicates a boundary of a geofeed. The geo-location input shaped as circle 1111 may be normalized into an input format that may be acceptable for a particular content provider. The input format that is acceptable, in this example, may be a zip code (and/or neighborhood, city, state, etc. and/or any other non-circular shaped geographical area). If the geographical area bounded by circle 1111 overlaps with more than one zip code (as illustrated by zip codes 1112 and 1113), the geo-location input shaped as circle 1111 may be normalized into zip codes 1112 and 1113 which may be used to request content from the content provider.

The content received from the content provider based on zip codes 1112 and 1113 may include excess content that is outside of the area represented by circle 1111. Such excess content such as content items 1170A and 1170B may be located in the shaded area of zip codes 1112 and 1113. Content items 1170A and 1170B may be removed from the received content whereas content such as content items 1160A and 1160B that are within circle 1111 may be added to the geofeed.

Other embodiments, uses and advantages of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. The specification should be considered exemplary only, and the scope of the invention is accordingly intended to be limited only by the following claims. 

What is claimed is:
 1. A method for processing geo-location input to be used to obtain content from a plurality of social media content providers, the method being implemented in a computer that includes one or more physical processors configured to execute one or more computer program instructions, the method comprising: obtaining, by the computer, a geo-location input comprising a specification of one or more geographically definable locations, wherein the geo-location input comprises a map input shaped as a polygon and is to be used to obtain content from one or more of a plurality of content providers individually having a particular format for the geo-location input, the plurality of content providers comprising at least a first content provider having a first format that requires a point and radius input; identifying, by the computer, a centroid and a corner of the polygon; determining, by the computer, a center of a circle based on the centroid and a radius of the circle based on the corner; generating, by the computer, a formatted geo-location input, which is formatted in accordance with the first format, based on the center and the radius; and causing, by the computer, the formatted geo-location input to be communicated to the particular one of the plurality of content providers.
 2. The method of claim 1, the method further comprising: receiving, by the computer, a plurality of content items from the particular one of the plurality of content providers based on the formatted geo-location input.
 3. The method of claim 2, wherein identifying the corner of the polygon comprises: identifying, by the computer, a corner having the longest distance from the centroid, wherein the radius of the circle is determined based on the corner having the longest distance from the centroid.
 4. The method of claim 3, the method further comprising: determining, by the computer, that at least a first content item from among the plurality of content items is associated with a first location that is outside of the one or more geographically definable locations specified in the geo-location input; and filtering out, by the computer, the first content item from a set of content items that is to be communicated to one or more entities, wherein the set of content items comprises one or more of the plurality of content items.
 5. The method of claim 4, the method further comprising: providing, by the computer, an indication of the filtered out first content item; receiving, by the computer, an indication to add the filtered out first content item to the set of content items responsive to the provided indication of the filtered out first content item; and causing, by the computer, the filtered out first content item to be added to the set of content items responsive to the received indication to add the filtered out first content item.
 6. The method of claim 2, wherein identifying the corner of the polygon comprises: identifying, by the computer, a corner having the shortest distance from the centroid, wherein the radius of the circle is determined based on the corner having the shortest distance from the centroid.
 7. The method of claim 6, the method further comprising: identifying, by the computer, at least a second content item that was not included among the plurality of content items but should have been included based on the one or more geographically definable locations specified in the geo-location input and adding the second content item to the received plurality of content items.
 8. The method of claim 7, the method further comprising: providing, by the computer, an indication of the second content item; receiving, by the computer, an indication to remove the second content item; and causing, by the computer, the second content item to be filtered out responsive to the indication to remove the second content item.
 9. A system for processing geo-location input to be used to obtain content from a plurality of social media content providers, the system comprising: a computer comprising one or more physical processors programmed with one or more computer program instructions that cause the computer to: obtain a geo-location input comprising a specification of one or more geographically definable locations, wherein the geo-location input comprises a map input shaped as a polygon and is to be used to obtain content from one or more of a plurality of content providers individually having a particular format for the geo-location input, the plurality of content providers comprising at least a first content provider having a first format that requires a point and radius input; identify a centroid and a corner of the polygon; determine a center of a circle based on the centroid and a radius of the circle based on the corner; generate a formatted geo-location input, which is formatted in accordance with the first format, based on the center and the radius; and cause the formatted geo-location input to be communicated to the particular one of the plurality of content providers.
 10. The system of claim 9, wherein the one or more processors are further programmed to: receive a plurality of content items from the particular one of the plurality of content providers based on the formatted geo-location input.
 11. The system of claim 10, wherein to identify the corner of the polygon, the one or more processors are further programmed to: identify a corner having the longest distance from the centroid, wherein the radius of the circle is determined based on the corner having the longest distance from the centroid.
 12. The system of claim 11, wherein the one or more processors are further programmed to: determine that at least a first content item from among the plurality of content items is associated with a first location that is outside of the one or more geographically definable locations specified in the geo-location input; and filter out the first content item from a set of content items that is to be communicated to one or more entities, wherein the set of content items comprises one or more of the plurality of content items.
 13. The system of claim 12, wherein the one or more processors are further programmed to: provide an indication of the filtered out first content item; receive an indication to add the filtered out first content item to the set of content items responsive to the provided indication of the filtered out first content item; and cause the filtered out first content item to be added to the set of content items responsive to the received indication to add the filtered out first content item.
 14. The system of claim 10, wherein to identify the corner of the polygon, the one or more processors are further programmed to: identify a corner having the shortest distance from the centroid, wherein the radius of the circle is determined based on the corner having the shortest distance from the centroid.
 15. The system of claim 14, wherein the one or more processors are further programmed to: identify at least a second content item that was not included among the plurality of content items but should have been included based on the one or more geographically definable locations specified in the geo-location input and adding the second content item to the received plurality of content items.
 16. The system of claim 15, wherein the one or more processors are further programmed to: provide an indication of the second content item; receive an indication to remove the second content item; and cause the second content item to be filtered out responsive to the indication to remove the second content item.
 17. A method for processing geo-location input to be used to obtain content from a plurality of social media content providers, the method being implemented in a computer that includes one or more physical processors configured to execute one or more computer program instructions, the method comprising: obtaining, by the computer, a geo-location input comprising a specification of one or more geographically definable locations, wherein the geo-location input comprises a map input shaped as a polygon and is to be used to obtain content from one or more of a plurality of content providers individually having a particular format for the geo-location input, the plurality of content providers comprising at least a first content provider; identifying, by the computer, an input format for the first content provider, wherein the input format comprises one or more types of geographical areas; determining, by the computer, a geographical area in which at least part of the one or more geographically definable locations belongs based on the one or more types of geographical areas; generating, by the computer, a formatted geo-location input, which is formatted in accordance with the first format, based on the geographical area; and causing, by the computer, the formatted geo-location input to be communicated to the first content provider.
 18. The method of claim 17, wherein the one or more types of geographical areas comprise a zip code, neighborhood, city, or state.
 19. The method of claim 17, the method further comprising: receiving, by the computer, a plurality of content items from the first content provider based on the formatted geo-location input; determining, by the computer, that at least a first content item from among the plurality of content items is associated with a first location that is outside of the one or more geographically definable locations specified in the geo-location input; and filtering out, by the computer, the first content item from a set of content items that is to be communicated to one or more entities, wherein the set of content items comprises one or more of the plurality of content items.
 20. The method of claim 19, the method further comprising: providing, by the computer, an indication of the filtered out first content item; receiving, by the computer, an indication to add the filtered out first content item to the set of content items responsive to the provided indication of the filtered out first content item; and causing, by the computer, the filtered out first content item to be added to the set of content items responsive to the received indication to add the filtered out first content item.
 21. The method of claim 17, the method further comprising: receiving, by the computer, a plurality of content items from the first content provider based on the formatted geo-location input; and identifying, by the computer, at least a second content item that was not included among the plurality of content items but should have been included based on the one or more geographically definable locations specified in the geo-location input and adding the second content item to the received plurality of content items.
 22. The method of claim 21, the method further comprising: providing, by the computer, an indication of the second content item; receiving, by the computer, an indication to remove the second content item; and causing, by the computer, the second content item to be filtered out responsive to the indication to remove the second content item.
 23. The method of claim 17, the method further comprising: determining, by the computer, a second geographical area in which at least part of the one or more geographically definable locations belongs based on the one or more types of geographical areas, wherein the formatted geo-location input formatted for the first content provider is further based on the second geographical area.
 24. The method of claim 4, wherein determining that the first content item from among the plurality of content items is associated with the first location that is outside of the one or more geographically definable locations specified in the geo-location input comprises: obtaining, by the computer, first geographic coordinates for the first location; obtaining, by the computer, coordinates that define a perimeter of the polygon; comparing, by the computer, the first geographic coordinates with the coordinates that define the perimeter of the polygon.
 25. The method of claim 7, wherein identifying at least a second content item that was not included among the plurality of content items but should have been included based on the one or more geographically definable locations specified in the geo-location input comprises: receiving, by the computer, at least the second content item from one of the plurality of content providers, wherein the second content item is associated with a second location; obtaining, by the computer, second geographic coordinates for the second location; obtaining, by the computer, coordinates that define a perimeter of the polygon; comparing, by the computer, the second geographic coordinates with the coordinates that define the perimeter of the polygon. 